home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1985-06-04 | 2.4 KB | 81 lines |
- 10 REM **** CPACORC ****
- 20 CLOSE
- 50 DEFINT B-Z:DEFSNG A
- 100 DIM X$(12),D$(500),O2(500),D(500),A6(500),P(500),B(500),T(500)
- 120 DIM S(500),F(500),N(500)
- 150 GOSUB 5000 'READ INPUT FILE
- 160 PRINT : PRINT "**** THIS MODULE ALLOWS YOU TO CHANGE NODES EITHER MATHEMATICALLY OR BY ****"
- 170 PRINT "**** USING A [.NDS] FILE SET UP BY OPTION 10 OF THE MAIN MENU ****"
- 180 PRINT : INPUT "Change Mathematically, by [.NDS] File, or Quit (M/F/Q) ";Q$
- 182 IF LEFT$(Q$,1)="F" THEN 190
- 184 IF LEFT$(Q$,1)="Q" THEN 720
- 186 GOTO 450
- 190 H$=F$+".NDS"
- 200 ON ERROR GOTO 400
- 210 OPEN H$ FOR INPUT AS #2
- 220 J=0
- 230 J=J+1
- 240 IF EOF(2) THEN 270
- 250 INPUT #2,N(J)
- 260 GOTO 230
- 270 NN=J-1:PRINT "**** NUMBER OF UNIQUE NODES =";NN;"****"
- 272 PRINT "**** MAXIMUM SPACING BETWEEN NODES IS";INT(1000/NN);"****"
- 274 PRINT :INPUT "Enter the desired separation ";SEP:SEP=INT(SEP)
- 276 IF SEP>INT(1000/NN) THEN BEEP:GOTO 272
- 278 PRINT "**** THIS COULD TAKE A WHILE - RELAX ****"
- 280 FOR I=1 TO N
- 290 FOR J=1 TO NN
- 300 IF S(I)=N(J) THEN S(I)=J*SEP:GOTO 308
- 304 NEXT J
- 308 FOR K=J+1 TO NN
- 310 IF F(I)=N(K) THEN F(I)=K*SEP:GOTO 330
- 320 NEXT K
- 330 IF I MOD 10=0 THEN PRINT I;
- 340 NEXT I
- 350 GOTO 550
- 400 BEEP:PRINT "**** FILE ";H$;" NOT FOUND - CREATE WITH OPTION 10 ****":RESUME 180
- 450 INPUT "Enter amount to multiply to all nodes ",M8
- 460 IF N8*M8>1000 THEN PRINT "**** MAXIMUM MULTIPLE IS";INT(1000/N8);" TRY AGAIN (ENTER 1 FOR NO CHANGE) ****" ELSE 480
- 470 GOTO 450
- 480 INPUT "Enter amount to add to all nodes ",A8
- 482 IF N8*M8+A8>1000 THEN PRINT "**** MAXIMUM ADDITION IS";1000-N8*M8;"TRY AGAIN (ENTER 0 FOR NO CHANGE) ****" ELSE 490
- 484 GOTO 480
- 490 FOR I=1 TO N
- 500 S(I)=S(I)*M8
- 510 F(I)=F(I)*M8
- 520 S(I)=S(I)+A8
- 530 F(I)=F(I)+A8
- 540 NEXT I
- 550 REM **** ROUTINE TO UPDATE INPUT FILE ****
- 560 OPEN G$ FOR OUTPUT AS #1
- 580 WRITE #1,P$,T6$,DA$
- 640 FOR I=1 TO N
- 650 WRITE #1,D$(I),S(I),F(I),O2(I),D(I),A6(I),P(I),B(I),T(I)
- 660 NEXT I
- 690 PRINT "**** FILE ";G$;" UPDATED ****"
- 700 PRINT
- 705 CLOSE #1
- 710 INPUT "Press ENTER to continue ",Q$
- 720 CHAIN "CPAMENU"
- 5000 REM **** READING IN ALREADY CREATED INPUT FILE ******************
- 5010 INPUT "Enter the name of the input file [.CPM] ";G$
- 5015 IF G$="Q" OR G$="QUIT" THEN 720
- 5020 P=INSTR(1,G$,"."):IF P<>0 THEN F$=LEFT$(G$,INSTR(1,G$,".")-1) ELSE F$=G$
- 5030 IF LEN(F$)>8 THEN PRINT "**** NOT A VALID PCPM FILE ****":BEEP:GOTO 5010
- 5035 ON ERROR GOTO 5300
- 5037 G$=F$+".CPM"
- 5040 OPEN G$ FOR INPUT AS #3
- 5050 INPUT #3,P$,T6$,DA$
- 5060 I=0
- 5070 I=I+1
- 5080 IF EOF(3) THEN 5130
- 5090 INPUT #3,D$(I),S(I),F(I),O2(I),D(I),A6(I),P(I),B(I),T(I)
- 5100 IF F(I)>N8 THEN N8=F(I) 'HIGHEST END NODE =N8
- 5110 IF I MOD 20=0 THEN PRINT I;
- 5120 GOTO 5070
- 5130 N=I-1
- 5150 CLOSE #3
- 5160 PRINT " **** INPUT FILE READ ****"
- 5170 RETURN
- 5300 PRINT "**** FILE DOES NOT EXIST - TRY AGAIN ****":BEEP:GOTO 5000
-